Skip to content

chore(boxel-cli): sunset workspace-sync-cli — CS-11047 + CS-11162#4853

Open
FadhlanR wants to merge 3 commits into
mainfrom
cs-11047-consolidate-workspace-sync-cli-integration-tests-into-boxel
Open

chore(boxel-cli): sunset workspace-sync-cli — CS-11047 + CS-11162#4853
FadhlanR wants to merge 3 commits into
mainfrom
cs-11047-consolidate-workspace-sync-cli-integration-tests-into-boxel

Conversation

@FadhlanR
Copy link
Copy Markdown
Contributor

@FadhlanR FadhlanR commented May 18, 2026

Summary

Sunsets packages/workspace-sync-cli. Two combined tickets:

  • CS-11047 — Folds workspace-sync-cli's qunit integration suite into the boxel-cli vitest suite; removes the standalone workspace-sync-cli-test CI job. Net coverage check: 6/7 cases already covered by existing vitest specs (or deliberately dropped); 1 case (.boxelignore) ported as a new test.
  • CS-11162 — Removes packages/workspace-sync-cli/ entirely, plus its residual CI surface (workspace-sync-cli-build job, change-check filter entry, Lint Workspace Sync CLI step).

Zero internal dependents on @cardstack/workspace-sync-cli (verified via git grep '\"@cardstack/workspace-sync-cli\"' -- '**/package.json'). Out of scope: the npm deprecate action — handled in a sibling ticket in the same Linear project (remote-state, no code change).

Linear: CS-11047 · CS-11162

Per-case audit verdict (CS-11047)

# Source qunit case Verdict Destination
1 Pull files from realm to local DROP — already covered realm-pull.test.ts:56
2 Push modified files DROP — already covered realm-push.test.ts:153, 194
3 Pull --delete removes extras DROP — already covered realm-pull.test.ts:123
4 Push --dry-run modifies nothing DROP — already covered realm-push.test.ts:328
5 .realm.json bidirectional sync DROP — deliberate design change. boxel-cli treats .realm.json as protected; CS-11131 phases the sidecar out. Existing inverse coverage at realm-sync.test.ts:441 ("protected files (.realm.json) are never synced").
6 REALM_SECRET_SEED password derivation DROP — N/A. boxel-cli uses boxel profile add for credentials; no equivalent code path.
7 Respects .boxelignore patterns PORT — new it(...) in realm-push.test.ts. boxel-cli supports .boxelignore (src/lib/realm-sync-base.ts:697) but had no integration coverage.

What got deleted

Tests / CI consolidation (CS-11047):

  • packages/workspace-sync-cli/tests/ (integration-test.ts, helpers/start-test-realm.ts, index.ts, README.md).
  • test script + qunit / @types/qunit devDeps from packages/workspace-sync-cli/package.json.
  • Dead qunit override in packages/workspace-sync-cli/.eslintrc.js.
  • workspace-sync-cli-test job (and its dead test-web-assets if: clause) in .github/workflows/ci.yaml.

Package removal (CS-11162):

  • packages/workspace-sync-cli/ directory (all remaining src/, scripts/, package.json, configs, README).
  • workspace-sync-cli-build job in .github/workflows/ci.yaml.
  • change-check.outputs.workspace-sync-cli + filter glob in .github/workflows/ci.yaml.
  • Lint Workspace Sync CLI step in .github/workflows/ci-lint.yaml.

Test plan

  • pnpm install from the worktree — succeeds; workspace project count drops from 31 → 30.
  • git grep -nE 'workspace-(push|pull|sync-cli)' -- ':!pnpm-lock.yaml' — empty.
  • pnpm lint:js in packages/boxel-cli — clean.
  • CI: Boxel CLI Tests passes. Workspace Sync CLI Build, Workspace Sync CLI Integration Tests, and Lint Workspace Sync CLI are all absent from the checks list. Validate PR title passes against the new chore(boxel-cli): prefix.

🤖 Generated with Claude Code

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 18, 2026

Host Test Results

    1 files      1 suites   1h 31m 46s ⏱️
2 665 tests 2 650 ✅ 15 💤 0 ❌
2 684 runs  2 669 ✅ 15 💤 0 ❌

Results for commit 83d1c87.

Realm Server Test Results

    1 files  ±0      1 suites  ±0   8m 31s ⏱️ -22s
1 408 tests ±0  1 408 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 495 runs  ±0  1 495 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 83d1c87. ± Comparison against earlier commit b534880.

FadhlanR and others added 2 commits May 19, 2026 16:38
…-cli CI job

Folds workspace-sync-cli's qunit integration suite into the boxel-cli vitest
suite and removes the standalone `workspace-sync-cli-test` CI job. The
`workspace-sync-cli-build` job and the package source stay (out of scope per
the ticket).

Audit of the seven qunit cases:
- Cases 1-4 (pull, push, pull --delete, push --dry-run): already covered by
  existing boxel-cli specs — dropped to avoid duplicate coverage.
- Case 5 (.realm.json bidirectional): deliberately inverted by design.
  boxel-cli treats .realm.json as a protected file and never syncs it;
  CS-11131 phases the sidecar out entirely.
- Case 6 (REALM_SECRET_SEED password derivation): N/A. boxel-cli captures
  credentials via `boxel profile add`; no equivalent code path.
- Case 7 (.boxelignore patterns): ported as a new `it(...)` in
  `realm-push.test.ts` — boxel-cli supports .boxelignore (realm-sync-base.ts)
  but had no integration coverage for it.

The spawn-based `start-test-realm.ts` helper is replaced by boxel-cli's
in-process `startTestRealmServer` (stronger cleanup, no IPC handshake).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collapse the multi-line writeLocalFile call in the new .boxelignore
test to satisfy prettier's 80-col rule. Also remove the planning doc
from the merged branch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@FadhlanR FadhlanR force-pushed the cs-11047-consolidate-workspace-sync-cli-integration-tests-into-boxel branch from 60ff56d to b534880 Compare May 19, 2026 09:39
@FadhlanR FadhlanR changed the title CS-11047: Consolidate workspace-sync-cli integration tests into boxel-cli CI job test(boxel-cli): CS-11047 consolidate workspace-sync-cli integration tests into boxel-cli CI job May 19, 2026
Every command the package shipped has a `boxel realm`-namespaced
replacement on boxel-cli (push, pull, sync). CS-11047 already moved the
test suite into the boxel-cli vitest job; this commit finishes the
sunset by deleting the package source, the `workspace-sync-cli-build`
CI job, the `change-check.workspace-sync-cli` filter, and the
`Lint Workspace Sync CLI` step.

Zero in-repo dependents — verified via
`git grep '"@cardstack/workspace-sync-cli"' -- '**/package.json'`.
The `npm deprecate` action is handled in a sibling ticket.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@FadhlanR FadhlanR changed the title test(boxel-cli): CS-11047 consolidate workspace-sync-cli integration tests into boxel-cli CI job chore(boxel-cli): sunset workspace-sync-cli — CS-11047 + CS-11162 May 19, 2026
@FadhlanR FadhlanR marked this pull request as ready for review May 19, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants